// pages/search/index.js
/**
 * 1、输入框绑定，值改变事件 input事件
 *  1、获取到输入框的值
 *  2、合法性判断
 *  3、检验通过，把输入框的值发送到后台
 *  4、返回的值打印在页面上
 * 2、防抖（防止抖动）定时器   节流
 *  0、防抖一般放入输入框中，防止重复输入，重复发送请求
 *  1、节流，一般是用在页面上拉和下拉
 *  1、定义全局的定时器id
 */
import{ request } from "../../request/index.js";
import regeneratorRuntime from '../../lib/runtime/runtime'; 
Page({
    data:{
        goods:[],
        //取消 按钮 是否显示
        isFoucs:false,
        //输入框的值
        inputValue:""
    },
    TimeId:-1,

    //输入框值改变就会绑定的事件
    handleInput(e){
        //1、获取输入框的值
        const {value} = e.detail;
        //2、检测合法性
        if(!value.trim()){
            this.setData({
                goods:[],
                isFoucs:false
            })
            //值不合法
            return;
        }
        //3、准备发送请求获取数据
        //清除定时器
        this.setData({
            isFoucs:true,
        })
        clearTimeout(this.TimeId);
        this.TimeId = setTimeout(() => {
            this.qsearch(value);
        },1000);
    },
    //发送请求获取搜索建议的数据
    async qsearch(query){
        const res=await request({url:"/goods/qsearch",data:{query}});
        console.log(res);
        this.setData({
            goods:res
        })
    },
    //点击取消清除搜索，隐藏按钮，清除搜索结果
    handleCancel(){
        this.setData({
            inputValue:"",
            isFoucs:false,
            goods:[]
        })
    }
})